<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns:u="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:t="http://com.ss.stockmanager/jsf"
	xmlns:p="http://primefaces.org/ui" xmlns="http://www.w3.org/1999/xhtml">

	<body>
	
		<h:panelGrid id="listOrdendeCompra" columns="1" 
						rendered="#{ordenDeCompraController.list}" >
	
				<p:panel id="panelFiltro" header="#{msgs.common_filtros}"
					rendered="#{!ordenDeCompraController.addEdit}">
					<h:panelGrid columns="6">

						<h:outputText value="Numero orden de compra" />
						<p:inputText value="#{ordenDeCompraController.ordenDeCompraQuery.numeroOrdenDeCompra}"
							maxlength="50" size="50" />

						<h:outputText value="Proveedor" />
						<p:selectOneMenu id="comboProveedor"
							value="#{ordenDeCompraController.ordenDeCompraQuery.proveedorID}">
							<f:selectItem itemLabel="-- Seleccione --" itemValue="" />
							<f:selectItems value="#{ordenDeCompraController.listaDeProveedores}"
								var="prov" itemValue="#{prov.id}" itemLabel="#{prov.nombre}" />
						</p:selectOneMenu>
						
						<h:outputText value="Cliente" rendered="#{p:ifAnyGranted('ROLE_ADMIN,ROLE_CENTRAL_SUPERVISOR')}"/>
						<p:selectOneMenu id="comboCliente"
							rendered="#{p:ifAnyGranted('ROLE_ADMIN,ROLE_CENTRAL_SUPERVISOR')}"
							value="#{ordenDeCompraController.ordenDeCompraQuery.clienteID}">
							<f:selectItem itemLabel="-- Seleccione --" itemValue="" />
							<f:selectItems value="#{ordenDeCompraController.listaDeClientes}"
								var="cli" itemValue="#{cli.id}" itemLabel="#{cli.nombre}" />
						</p:selectOneMenu>
						
						<h:outputText value="Fecha desde" />
						<p:calendar id="fechaDesde"
							value="#{ordenDeCompraController.ordenDeCompraQuery.fechaDesde}" mode="popup"
							showOn="button" locale="es"
							pattern="#{msgs.common_inputDateFormat}"
							readOnlyInputText="false" navigator="true" yearRange="c-100:c+50"
							converterMessage="El formato de la fecha es incorrecto">
						</p:calendar>
						
						<h:outputText value="Fecha Hasta" />
						<p:calendar id="fechaHasta"
							value="#{ordenDeCompraController.ordenDeCompraQuery.fechaHasta}" mode="popup"
							showOn="button" locale="es"
							pattern="#{msgs.common_inputDateFormat}"
							readOnlyInputText="false" navigator="true" yearRange="c-100:c+50"
							converterMessage="El formato de la fecha es incorrecto">
						</p:calendar>

						<p:commandButton value="Consultar"
							actionListener="#{ordenDeCompraController.query}" update="dataTable">
						</p:commandButton>
					</h:panelGrid>
				</p:panel>

				<h:outputText value="&#160;" />

				
				<p:dataTable id="dataTable" var="ordenDeCompra"
					value="#{ordenDeCompraController.lazyDM}" paginator="true" rows="10"
					paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
					rowsPerPageTemplate="10,15,20"
					rendered="#{!ordenDeCompraController.addEdit}"
					emptyMessage="No se encontraron registros" dynamic="true"
					lazy="true">

					<f:facet name="header">
						<h:outputText value="#{msgs.admOrdenDeCompra_title}" />
					</f:facet>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Nombre proveedor" />
						</f:facet>
						<h:outputText value="#{ordenDeCompra.proveedor.nombre}" />
					</p:column>
					
					<p:column>
						<f:facet name="header">
							<h:outputText value="Nombre cliente" />
						</f:facet>
						<h:outputText value="#{ordenDeCompra.cliente.nombre}" rendered="#{!(ordenDeCompra.cliente eq null)}"/>
						<h:outputText value="" rendered="#{(ordenDeCompra.cliente eq null)}"/>
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Numero orden de compra" />
						</f:facet>
						<h:outputText value="#{ordenDeCompra.numeroOrdenDeCompra}" />
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Estado orden de compra" />
						</f:facet>
						<h:outputText value="#{ordenDeCompra.estado}" />
					</p:column>

					<p:column>
						<f:facet name="header">
							<h:outputText value="Fecha" />
						</f:facet>
						<h:outputText value="#{ordenDeCompra.fechaOrdenDeCompra}" >
							<f:convertDateTime pattern="dd-MM-yyyy" />
						</h:outputText>
					</p:column>
					
					<p:column>
						<f:facet name="header">
							<h:outputText value="Total" />
						</f:facet>
						<h:outputText value="#{ordenDeCompra.total}">
							<f:convertNumber pattern="$###,###.##" />
						</h:outputText>
					</p:column>
					
					<p:column>
						<f:facet name="header">
							<h:outputText value="Total recepcionado"/>
						</f:facet>
						<h:outputText value="#{ordenDeCompra.totalRecepcionado}">
							<f:convertNumber pattern="$###,###.##" />
						</h:outputText>
					</p:column>

					<p:column style="width:400px" >
						<f:facet name="header">
							<h:outputText value="#{msgs.common_opciones}" />
						</f:facet>
						<h:panelGrid columns="10" styleClass="oc-list-purchase"> 
							
							<p:commandLink actionListener="#{ordenDeCompraController.info(ordenDeCompra.ID)}" 
											update=":form">
								<h:graphicImage url="/resources/images/information.png" 
									title="Informacion orden de compra e impresión de remitos" style="border:0px;width:25px;heigth:25px;" />
							</p:commandLink>
							
							<p:commandLink actionListener="#{ordenDeCompraController.edit(ordenDeCompra.ID,'false')}" 
											update=":form" 
											disabled="#{ordenDeCompra.estado != 'NUEVA'}" >
								<h:graphicImage url="/resources/images/update.png" 
									title="Modificar orden de compra" style="border:0px;width:25px;heigth:25px;" />
							</p:commandLink>
							
							<p:commandLink 	action="#{ordenDeCompraController.prepararAutorizacion}" 
											disabled="#{ordenDeCompra.estado != 'NUEVA'}" 
											update=":form:dialogoAutorizacion"
										 	oncomplete="PF('dlgAutorizar').show();" >
								<f:setPropertyActionListener target="#{ordenDeCompraController.idSeleccionado}" 
															value="#{ordenDeCompra.ID}" />
								<h:graphicImage url="/resources/images/accept.png"
												title="Autorizar orden de compra"
												style="border:0px;width:25px;heigth:25px;"/>
							</p:commandLink>
							
							<p:commandLink actionListener="#{ordenDeCompraController.print}"
								disabled="#{!(ordenDeCompra.estado == 'AUTORIZADA' || ordenDeCompra.estado == 'REMITOS APROBADOS' 
								|| ordenDeCompra.estado == 'REMITOS RECEPCIONADOS' || ordenDeCompra.estado == 'FALTA APROBACION DE REMITOS')}" ajax="false">
								<h:graphicImage url="/resources/images/print.png"
									title="Imprimir orden de compra"
									style="border:0px;width:25px;heigth:25px;" />
							</p:commandLink>

							<p:commandLink actionListener="#{ordenDeCompraController.email}"
								update=":form" disabled="#{ordenDeCompra.estado != 'AUTORIZADA'}"
								onclick="PF('progresWV').show();"
								oncomplete="PF('progresWV').hide();">
								<h:graphicImage url="/resources/images/mail.png"
									title="Enviar orden de compra a proveedor"
									style="border:0px;width:25px;heigth:25px;" />
							</p:commandLink>
							
							<p:commandLink actionListener="#{ordenDeCompraController.asociarRemitos(ordenDeCompra.ID,'false')}" 
											update=":form"
											disabled="#{(ordenDeCompra.estado != 'AUTORIZADA' and 
														ordenDeCompra.estado != 'FALTA APROBACION DE REMITOS') or
														ordenDeCompraController.usuario.cliente != null}" >
								<h:graphicImage url="/resources/images/remito.png" 
												title="Asociar remitos a la orden de compra" 
												style="border:0px;width:25px;heigth:25px;" />
							</p:commandLink>

							<p:commandLink actionListener="#{ordenDeCompraController.recepcion(ordenDeCompra.ID,'false')}" 
											update=":form"
											disabled="#{(ordenDeCompra.estado != 'REMITOS APROBADOS' and
														ordenDeCompra.estado != 'FALTA RECEPCION DE REMITOS' )or
														ordenDeCompraController.usuario.cliente.ID != ordenDeCompra.cliente.ID}" >
								<h:graphicImage url="/resources/images/recepcion.png" 
												title="Recepcion de mercaderia" 
												style="border:0px" />
							</p:commandLink>

							<p:commandLink 	action="#{ordenDeCompraController.prepararCerrar}" 
											update=":form:dialogoCierre"
											disabled="#{ordenDeCompra.estado != 'REMITOS RECEPCIONADOS' or
														ordenDeCompraController.usuario.cliente != null	}"
										 	oncomplete="PF('dlgCerrar').show();" >
								<f:setPropertyActionListener target="#{ordenDeCompraController.idSeleccionado}" 
															value="#{ordenDeCompra.ID}" />
								<h:graphicImage url="/resources/images/close.png"
												title="Cerrar orden de compra" 
												style="border:0px;width:25px;heigth:25px;" />
							</p:commandLink>
							

						</h:panelGrid>
					</p:column>
					
					<f:facet name="footer">
						<h:panelGrid columns="4"> 
							<h:outputText value="Total"/>
							<h:outputText value="#{ordenDeCompraController.total}">
								<f:convertNumber pattern="$###,###.##" />
							</h:outputText>
							<h:outputText value="Total recepcionado"/>
							<h:outputText value="#{ordenDeCompraController.totalRecepcionado}">
								<f:convertNumber pattern="$###,###.##" />
							</h:outputText>
						
						</h:panelGrid>
					</f:facet>

				</p:dataTable>

				<h:panelGrid columns="1" rendered="#{!ordenDeCompraController.addEdit}">
					<p:commandButton value="Nueva Orden de Compra"
						actionListener="#{ordenDeCompraController.add}" update=":form">
					</p:commandButton>
				</h:panelGrid>	

	</h:panelGrid>

</body>
</html>

